home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / php / pear / Auth / SASL.php < prev   
PHP Script  |  2004-03-24  |  4KB  |  98 lines

  1. <?php
  2. // +-----------------------------------------------------------------------+ 
  3. // | Copyright (c) 2002-2003 Richard Heyes                                 | 
  4. // | All rights reserved.                                                  | 
  5. // |                                                                       | 
  6. // | Redistribution and use in source and binary forms, with or without    | 
  7. // | modification, are permitted provided that the following conditions    | 
  8. // | are met:                                                              | 
  9. // |                                                                       | 
  10. // | o Redistributions of source code must retain the above copyright      | 
  11. // |   notice, this list of conditions and the following disclaimer.       | 
  12. // | o Redistributions in binary form must reproduce the above copyright   | 
  13. // |   notice, this list of conditions and the following disclaimer in the | 
  14. // |   documentation and/or other materials provided with the distribution.| 
  15. // | o The names of the authors may not be used to endorse or promote      | 
  16. // |   products derived from this software without specific prior written  | 
  17. // |   permission.                                                         | 
  18. // |                                                                       | 
  19. // | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   | 
  20. // | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     | 
  21. // | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
  22. // | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  | 
  23. // | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
  24. // | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      | 
  25. // | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
  26. // | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
  27. // | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   | 
  28. // | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
  29. // | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  | 
  30. // |                                                                       | 
  31. // +-----------------------------------------------------------------------+ 
  32. // | Author: Richard Heyes <richard@php.net>                               | 
  33. // +-----------------------------------------------------------------------+ 
  34. // 
  35. // $Id: SASL.php,v 1.4 2003/02/21 16:07:17 mj Exp $
  36.  
  37. /**
  38. * Client implementation of various SASL mechanisms 
  39. *
  40. * @author  Richard Heyes <richard@php.net>
  41. * @access  public
  42. * @version 1.0
  43. * @package Auth_SASL
  44. */
  45.  
  46. require_once('PEAR.php');
  47.  
  48. class Auth_SASL
  49. {
  50.     /**
  51.     * Factory class. Returns an object of the request
  52.     * type.
  53.     *
  54.     * @param string $type One of: Anonymous
  55.     *                             Plain
  56.     *                             CramMD5
  57.     *                             DigestMD5
  58.     *                     Types are not case sensitive
  59.     */
  60.     function &factory($type)
  61.     {
  62.         switch (strtolower($type)) {
  63.             case 'anonymous':
  64.                 $filename  = 'Auth/SASL/Anonymous.php';
  65.                 $classname = 'Auth_SASL_Anonymous';
  66.                 break;
  67.  
  68.             case 'login':
  69.                 $filename  = 'Auth/SASL/Login.php';
  70.                 $classname = 'Auth_SASL_Login';
  71.                 break;
  72.  
  73.             case 'plain':
  74.                 $filename  = 'Auth/SASL/Plain.php';
  75.                 $classname = 'Auth_SASL_Plain';
  76.                 break;
  77.  
  78.             case 'crammd5':
  79.                 $filename  = 'Auth/SASL/CramMD5.php';
  80.                 $classname = 'Auth_SASL_CramMD5';
  81.                 break;
  82.  
  83.             case 'digestmd5':
  84.                 $filename  = 'Auth/SASL/DigestMD5.php';
  85.                 $classname = 'Auth_SASL_DigestMD5';
  86.                 break;
  87.  
  88.             default:
  89.                 return PEAR::raiseError('Invalid SASL mechanism type');
  90.                 break;
  91.         }
  92.  
  93.         require_once($filename);
  94.         return new $classname();
  95.     }
  96. }
  97.  
  98. ?>